package com.linwen.excise.sort;

/**
 * 冒泡排序
 * 时间复杂度n^2
 * 相邻元素互相比较，一次冒泡最大的一个元素
 *
 * @author lin
 * param array
 * return
 */

class _02BubbleSort {
    //从前往后冒泡
    public void bubbleSort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                    Sortutil.swap(array, j, j + 1);
                }
            }
        }
	}



    //从后面往前面冒泡
    public void bubbleSortafter(int[] array) {
        for (int i = 0; i < array.length - 1; i++) {
            boolean flag = true; //顺序标志位
            for (int j = array.length - 1; j > i; j--) {
                if (array[j] < array[j - 1]) {
					Sortutil.swap2(array,j,j-1);
                    flag = false;
                }
            }
            System.out.println("第" + i + "次排序");
            if (flag) {
                return;
            }
        }
	}

}
